//判断用户名是否合法
function usernameValid(username) {
    //判断用户名是否合法
    const nameValid = /^.{1,25}$/
    if (username.match(nameValid) == null) {
        alert("长度大于25");
        return false;
    }
    const nameUnValid = /^\s.*$/;  //匹配则非法
    const nameUnValid2 = /^.*?\s+.*$/;   //匹配则非法
    if (!(username.match(nameUnValid) == null && username.match(nameUnValid2) == null)) {
        return false;
    }
    return true;

}

//判断密码是否合法
function passwordValid(password) {
    //合法密码 数字与字母大于6位
    const valid = /^[\d\w]{6,}$/
    return password.match(valid) != null;

}

//判断用户编码是否合法
function codeValid(userCode) {
    //判断密码是否为9位数字
    const valid1 = /^\d{9}$/
    //判断是否匹配
    return userCode.match(valid1) != null;

}

//新增用户时的约束函数
function addUserConstrain() {
    const div = $(this).parent();
    const errorLabel = div.children.eq(0);
    //获取用户输入的信息
    const username = div.children().eq(1).val();
    const password = div.children().eq(2).val();
    const userCode = div.children().eq(3).val();
    const unit = div.children().eq(4).val();
    const userRole = div.children().eq(5).val();
    const remark = div.children().eq(6).val();

    if (!usernameValid(username)) {
        errorLabel.text("用户名格式不合法");
        return false;
    }
    if (!passwordValid(password)) {
        errorLabel.text("密码格式不合法");
        return false;
    }
    if (!codeValid(userCode)) {
        errorLabel.text("用户编码格式不正确");
        return false;
    }
    //判断单位是否为空
    if (unit == null || unit === '') {
        errorLabel.text("单位不能为空");
        return false;
    }

    //判断用户角色是否合法
    const validRole = /^(超级管理员|普通用户)$/
    if (userRole.match(validRole) == null) {
        errorLabel.text("用户角色只能为超级管理员或普通用户");
        return false;
    }
    //判断备注是否为空
    if (remark == null || remark === '') {
        errorLabel.text("备注不能为空");
        return false;
    }

    return true;
}

//新增测站时的约束
function addStaConstrain() {
    const div = $(this).parent();
    //获取错误提示信息
    const labelError = errorLabel;
    //获取用户输入信息
    const code = div.children().eq(1).val();
    const name = div.children().eq(2).val();
    const codeSta = div.children().eq(3).val();
    const nameSta = div.children().eq(4).val();
    const type = div.children().eq(5).val();
    const remark = div.children().eq(6).val();
    const validCode = /^\d{8}$/
    alert(code);
    if (code.match(validCode) == null) {
        labelError.text("对象编码格式错误");
        return false;
    }
    if (name == null || name === '') {
        labelError.text("对象名称不能为空");
        return false;
    }
    if (codeSta.match(validCode) == null) {
        labelError.text("测站编码格式错误");
        return false;
    }
    if (nameSta == null || nameSta === '') {
        labelError.text("测站名称不能为空");
        return false;
    }
    if (type == null || type === '') {
        labelError.text("测站类型不能为空");
        return false;
    }
    if (remark == null || remark === '') {
        labelError.text("备注不能为空");
        return false;
    }
    return true;

}

//修改测站信息约束
function updateStaConstrain() {
    //获取错误标签
    const labelError = $("#error-label");
    const code = $("#code").val();
    const name = $("#name").val();
    const codeSta = $("#codeSta").val();
    const nameSta = $("#nameSta").val();
    const type = $("#type").val();
    const remark = $("#remark").val();
    const validCode = /^\d{8}$/
    if (code.match(validCode) == null) {
        labelError.text("对象编码格式错误");
        return false;
    }
    if (name == null || name === '') {
        labelError.text("对象名称不能为空");
        return false;
    }
    if (codeSta.match(validCode) == null) {
        labelError.text("测站编码格式错误");
        return false;
    }
    if (nameSta == null || nameSta === '') {
        labelError.text("测站名称不能为空");
        return false;
    }
    if (type == null || type === '') {
        labelError.text("测站类型不能为空");
        return false;
    }
    if (remark == null || remark === '') {
        labelError.text("备注不能为空");
        return false;
    }
    return true;

}

//修改用户信息时的约束
function updateUserConstrain() {
    //获取错误标签
    const errorLabel = $("#error-label");
    //获取用户输入的信息
    const username = $("#username").val();
    const password = $("#password").val();
    const userCode = $("#userEncode").val();
    const unit = $("#unit").val();
    const userRole = $("#userRole").val();
    const remark = $("#remark").val();

    if (!usernameValid(username)) {
        errorLabel.text("用户名格式不合法");
        return false;
    }
    if (!passwordValid(password)) {
        errorLabel.text("密码格式不合法");
        return false;
    }
    if (!codeValid(userCode)) {
        errorLabel.text("用户编码格式不正确");
        return false;
    }
    //判断单位是否为空
    if (unit == null || unit === '') {
        errorLabel.text("单位不能为空");
        return false;
    }

    //判断用户角色是否合法
    const validRole = /^(超级管理员|普通用户)$/
    if (userRole.match(validRole) == null) {
        errorLabel.text("用户角色只能为超级管理员或普通用户");
        return false;
    }
    //判断备注是否为空
    if (remark == null || remark === '') {
        errorLabel.text("备注不能为空");
        return false;
    }

    return true;
}

function addRiverConstrain() {
    //获取错误信息标签
    const errorLabel = $("#error-label");
    //获取要约束的数据标签
    const riverCode = $("#riverCode").val();
    const riverName = $("#riverName").val();
    const riverSystemName = $("#riverSystemName").val();
    const drainageBasinName = $("#drainageBasinName").val();
    let valid = /^\d{3}$/;
    if (riverCode.match(valid) == null) {
        errorLabel.text("河流编码格式错误");
        return false;
    }
    valid = /^.{1,25}$/
    if (riverName.match(valid) == null) {
        errorLabel.text("河流名称格式错误");
        return false;
    }
    if (riverSystemName.match(valid) == null) {
        errorLabel.text("水系名称格式错误");
        return false;
    }
    if (drainageBasinName.match(valid) == null) {
        errorLabel.text("流域名称格式错误");
        return false;
    }
    return true;

}

function updateRiverConstrain() {
    //获取错误信息标签
    const errorLabel = $("#error-label");
    //获取要约束的数据标签
    const riverCode = $("#riverCode").val();
    const riverName = $("#riverName").val();
    const riverSystemName = $("#riverSystemName").val();
    const drainageBasinName = $("#drainageBasinName").val();
    let valid = /^\d{3}$/;
    if (riverCode.match(valid) == null) {
        errorLabel.text("河流编码格式错误");
        return false;
    }
    valid = /^.{1,25}$/
    if (riverName.match(valid) == null) {
        errorLabel.text("河流名称格式错误");
        return false;
    }
    if (riverSystemName.match(valid) == null) {
        errorLabel.text("水系名称格式错误");
        return false;
    }
    if (drainageBasinName.match(valid) == null) {
        errorLabel.text("流域名称格式错误");
        return false;
    }
    return true;

}